package homework.xuluoxi;

/*
 * 作业名称：判断相同子字符串
 * 作业功能：获取两个指定字符串中的最大相同子串
 * 学    员：徐罗希
 * 版    本：V1.0
 * 备    注：模块三作业
 */

import java.util.Scanner;

public class SameStr {

    public static void main(String[] args) {

        // 1、准备需要判断的两个字符串
        Scanner sc = new Scanner(System.in);

        String str1;
        do {
                System.out.print("请输入第一个字符串，字符串长度不能小于1：");
                str1 = sc.next();
        }
        while (str1.length() <= 1);

        String str2;
        do {
                System.out.print("请输入第二个字符串，字符串长度不能小于1：");
                str2 = sc.next();
        }
        while (str2.length() <= 1);

        // 2、以较短的字符串为参照，进行子字符串的拆分，并和较长的字符串
        String lStr = str1.length() > str2.length() ? str1 : str2;
        String sStr = str1.length() > str2.length() ? str2 : str1;

        boolean noStrCase = true;
        String subStr;
Outer:  for (int i = sStr.length(); i >= 2; i --) {
            for (int j = 0; j <= sStr.length() - i; j ++) {
                subStr = sStr.substring(j, j + i);
                if (lStr.contains(subStr)) {
                    System.out.println("两个字符串的最大子串为：" + subStr);
                    noStrCase = false;
                    break Outer;
                }
            }
        }
        if (noStrCase) {
            System.out.println("两个字符串中没有共同的子串");
        }
    }
}
